/**
 * Collection List
 *  -  user
 *  -  user_followups
 *  -  user_authentications
 *  -  user_community
 */
var Schema = mongoose.Schema;
var mtOrderSchema = new Schema ({
    order_id : String, // 订单id
    member_id : String, // 美囤id
    order_uid : String, // 下单人宝宝树id
    order_uhp : String, // 下单人手机号
    order_user : {type: Schema.Types.ObjectId, ref: 'user'}, // 下单人唯一ID
    is_order_moderator : {type: Boolean, default: false}, // 下单人是否是大使
    share_uid : String, // 分享人宝宝树id
    share_uhp : String, // 分享人手机号
    share_user : {type: Schema.Types.ObjectId, ref: 'user'}, // 分享人唯一ID
    is_share_moderator : {type: Boolean, default: false}, // 分享人是否是大使
    order_time : {type: Date, default: Date.now}, // 下单时间
    price : Number, // 单价(拼团活动价)
    total : Number, // 总价格
    sku_code : String, // 商品编码
    sku_name : String, // 商品名称
    quantity : Number, // 数量
    skuQuantity : Number, // sku购买数量
    skuSubTotal : Number, // sku优惠后总价
    <!--  宝宝树66小区六次改造 自营非自营 mod   guo.xiaomin  20171222  start   -->
    itemSaleType : Number, //销售类型 0-自营 1-非自营
    originalItemSaleType : Number, // 原始值：销售类型 0-自营 1-非自营
    <!--  宝宝树66小区六次改造 自营非自营 mod   guo.xiaomin  20171222  end   -->
    wavesSign : Number, //是否海淘商品,1-否，2-是，默认1

    <!--  宝宝树66小区五次改造 拼团新列追加 mod   guo.xiaomin  20171129  start   -->
    standard : Number, // 可修改值：是否标品 0 非标品  1标品  -1未设置
    originalStandard : Number, // 原始值：是否标品 0 非标品  1标品  -1未设置
    // 商品分类：例：奶粉，纸尿裤
    largeId: Number, // 大分类
    mediumId: Number, // 中分类
    smallId: Number, // 小分类
    <!--  宝宝树66小区五次改造 拼团新列追加 mod   guo.xiaomin  20171129  end   -->

    <!--  宝宝树66小区三次改造 拼团新列追加 mod   guo.xiaomin  20171020  start   -->
    orderType : String, //订单类型（1：普通  2：海淘 5：拼团）
    isNewGroupOrder : String, //是否是新版本拼团订单 0-否;1-是
    //isNewGroupOrder="1"时  才有以下字段
    newGroupOrderStatus : String, // 新版本拼团状态 0-已成团;1-未成团;2-待成团;3-已抢光
    promotionId : Number, // 拼团活动id
    proBizCode : String, // 拼团实例code
    <!--  宝宝树66小区三次改造 拼团新列追加 mod    guo.xiaomin  20171020  end   -->
    <!--  宝宝树66小区四次改造 拼团新列追加 mod   guo.xiaomin  20171026  start   -->

    balanceStatus : {type: Number, default: 0}, // 结算状态 1:已粗算，2:已精算，3:本单结算，4:提成结算，5::全部结算，0:初始值（4种）
    commissionPercent : Number, // 佣金比例
    commissionName : String, // 佣金类型名称
    comment : String, // 说明
    lastActuaryDate: {type: Date, default: Date.now}, // 上次精算日期
    shareCommission : Number, // 分享订单佣金
    selfPurchase : Number, // 自购订单佣金
    communityCommission : Number, // 小区订单佣金
    inviterCommission : Number, // 被邀请大使订单佣金
    shareCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 分享订单佣金归属
    selfPurchaseUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 自购订单佣金归属
    communityCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 小区订单佣金归属
    inviterCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 被邀请大使订单佣金归属
    commissionDrawPercentage : Number, // 邀请提成比例

    orderCommissionType : Number, // 订单佣金类型-分享1；自购-2；小区-3；
    isInviterCommissionStatus : {type: Boolean, default: false}, // 是否是被邀请大使订单佣金
    prepareCommissionPrice : Number, // 预计佣金
    realCommissionPrice1 : Number, // 实际佣金1(前3项目)
    realCommissionPrice2 : Number, // 实际佣金2(后1项目)

    // (新说明)待付款-2,待转移-3,待发货-4,待收货-5,已收货-6,取消中-9,已取消-0
    status: Number, //订单状态（已取消-0,新建-1,待支付-2,拣货中-3,待发货-4,待收货-5,已收货-6,申请取消-8,取消中（等第三方确认）-9,退款完成-100）
    modifyTime: {type: Date, default: Date.now},//订单状态变更时间
    doneTime: {type: Date}, // 完成时间(收货时间)
    refundStatus: Number, //退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    refundTime: {type: Date}, //退款时间

    <!--  宝宝树66小区四次改造 拼团新列追加 mod    guo.xiaomin  20171026  end   -->
    isValid: {type: Boolean, default: true},
    dateCreated: {type: Date, default: Date.now},
    dateLastModified: {type: Date, default: Date.now}
});
mongoose.model('mtOrder', mtOrderSchema, 'mt_order');

// 美囤订单历史表-结算后存放到历史表中
var mtOrderHistorySchema = new Schema ({
    balance_id: {type: Schema.Types.ObjectId, ref: 'balance'}, // 结算id
    historyCreated: {type: Date, default: Date.now}, // 历史数据创建时间
    mtOrder_id : {type: Schema.Types.ObjectId, ref: 'mt_order'}, // 原表唯一ID
    order_id : String, // 订单id
    member_id : String, // 美囤id
    order_uid : String, // 下单人宝宝树id
    order_uhp : String, // 下单人手机号
    order_user : {type: Schema.Types.ObjectId, ref: 'user'}, // 下单人唯一ID
    is_order_moderator : {type: Boolean, default: false}, // 下单人是否是大使
    share_uid : String, // 分享人宝宝树id
    share_uhp : String, // 分享人手机号
    share_user : {type: Schema.Types.ObjectId, ref: 'user'}, // 分享人唯一ID
    is_share_moderator : {type: Boolean, default: false}, // 分享人是否是大使
    order_time : {type: Date, default: Date.now}, // 下单时间
    price : Number, // 单价(拼团活动价)
    total : Number, // 总价格
    sku_code : String, // 商品编码
    sku_name : String, // 商品名称
    quantity : Number, // 数量
    skuQuantity : Number, // sku购买数量
    skuSubTotal : Number, // sku优惠后总价
    itemSaleType : Number, //销售类型 0-自营 1-非自营
    originalItemSaleType : Number, // 原始值：销售类型 0-自营 1-非自营
    wavesSign : Number, //是否海淘商品,1-否，2-是，默认1

    standard : Number, // 可修改值：是否标品 0 非标品  1标品  -1未设置
    originalStandard : Number, // 原始值：是否标品 0 非标品  1标品  -1未设置
    // 商品分类：例：奶粉，纸尿裤
    largeId: Number, // 大分类
    mediumId: Number, // 中分类
    smallId: Number, // 小分类
    orderType : String, //订单类型（1：普通  2：海淘 5：拼团）
    isNewGroupOrder : String, //是否是新版本拼团订单 0-否;1-是
    //isNewGroupOrder="1"时  才有以下字段
    newGroupOrderStatus : String, // 新版本拼团状态 0-已成团;1-未成团;2-待成团;3-已抢光
    promotionId : Number, // 拼团活动id
    proBizCode : String, // 拼团实例code

    balanceStatus : {type: Number, default: 0}, // 结算状态 1:已粗算，2:已精算，3:本单结算，4:提成结算，5::全部结算，0:初始值（4种）
    commissionPercent : Number, // 佣金比例
    commissionName : String, // 佣金类型名称
    comment : String, // 说明
    lastActuaryDate: {type: Date, default: Date.now}, // 上次精算日期
    shareCommission : Number, // 分享订单佣金
    selfPurchase : Number, // 自购订单佣金
    communityCommission : Number, // 小区订单佣金
    inviterCommission : Number, // 被邀请大使订单佣金
    shareCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 分享订单佣金归属
    selfPurchaseUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 自购订单佣金归属
    communityCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 小区订单佣金归属
    inviterCommissionUser : {type: Schema.Types.ObjectId, ref: 'user'}, // 被邀请大使订单佣金归属
    commissionDrawPercentage : Number, // 邀请提成比例

    orderCommissionType : Number, // 订单佣金类型-分享1；自购-2；小区-3；
    isInviterCommissionStatus : {type: Boolean, default: false}, // 是否是被邀请大使订单佣金
    prepareCommissionPrice : Number, // 预计佣金
    realCommissionPrice1 : Number, // 实际佣金1(前3项目)
    realCommissionPrice2 : Number, // 实际佣金2(后1项目)

    // (新说明)待付款-2,待转移-3,待发货-4,待收货-5,已收货-6,取消中-9,已取消-0
    status: Number, //订单状态（已取消-0,新建-1,待支付-2,拣货中-3,待发货-4,待收货-5,已收货-6,申请取消-8,取消中（等第三方确认）-9,退款完成-100）
    modifyTime: {type: Date, default: Date.now},//订单状态变更时间
    doneTime: {type: Date}, // 完成时间(收货时间)
    refundStatus: Number, //退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    refundTime: {type: Date}, //退款时间

    isValid: {type: Boolean, default: true},
    dateCreated: {type: Date, default: Date.now},
    dateLastModified: {type: Date, default: Date.now}
});
mongoose.model('mtOrderHistory', mtOrderHistorySchema, 'mt_order_history');

// 复核日志
var mtOrderCheckLogSchema = new Schema ({
    order_id : String, // 订单id
    order_time : {type: Date, default: Date.now}, // 下单时间
    isError : {type: Boolean, default: false},    // 是否出错
    comment : String, // 说明
    old_member_id : String, // 美囤id
    new_member_id : String, // 美囤id
    error_member_id : {type: Boolean, default: false}, // 美囤id
    old_order_uid : String, // 下单人宝宝树id
    new_order_uid : String, // 下单人宝宝树id
    error_order_uid : {type: Boolean, default: false}, // 下单人宝宝树id
    old_order_uhp : String, // 下单人手机号
    new_order_uhp : String, // 下单人手机号
    error_order_uhp : {type: Boolean, default: false}, // 下单人手机号
    old_share_uid : String, // 分享人宝宝树id
    new_share_uid : String, // 分享人宝宝树id
    error_share_uid : {type: Boolean, default: false}, // 分享人宝宝树id
    old_share_uhp : String, // 分享人手机号
    new_share_uhp : String, // 分享人手机号
    error_share_uhp : {type: Boolean, default: false}, // 分享人手机号
    old_price : Number, // 单价(拼团活动价)
    new_price : Number, // 单价(拼团活动价)
    error_price : {type: Boolean, default: false}, // 单价(拼团活动价)
    old_total : Number, // 总价格
    new_total : Number, // 总价格
    error_total : {type: Boolean, default: false}, // 总价格
    old_sku_code : String, // 商品编码
    new_sku_code : String, // 商品编码
    error_sku_code : {type: Boolean, default: false}, // 商品编码
    old_sku_name : String, // 商品名称
    new_sku_name : String, // 商品名称
    error_sku_name : {type: Boolean, default: false}, // 商品名称
    old_quantity : Number, // 数量
    new_quantity : Number, // 数量
    error_quantity : {type: Boolean, default: false}, // 数量
    old_skuQuantity : Number, // sku购买数量
    new_skuQuantity : Number, // sku购买数量
    error_skuQuantity : {type: Boolean, default: false}, // sku购买数量
    old_skuSubTotal : Number, // sku优惠后总价
    new_skuSubTotal : Number, // sku优惠后总价
    error_skuSubTotal : {type: Boolean, default: false}, // sku优惠后总价
    <!--  宝宝树66小区六次改造 拼团新列追加 mod   guo.xiaomin  20171212  start   -->
    // old_itemSaleType : String, //销售类型 0-自营 1-非自营
    // new_itemSaleType : String, //销售类型 0-自营 1-非自营
    // error_itemSaleType : {type: Boolean, default: false}, //销售类型 0-自营 1-非自营
    old_originalItemSaleType : String, //销售类型 0-自营 1-非自营
    new_originalItemSaleType : String, //销售类型 0-自营 1-非自营
    error_originalItemSaleType : {type: Boolean, default: false}, //销售类型 0-自营 1-非自营
    <!--  宝宝树66小区六次改造 拼团新列追加 mod   guo.xiaomin  20171212  end   -->
    old_wavesSign : String, //是否海淘商品,1-否，2-是，默认1
    new_wavesSign : String, //是否海淘商品,1-否，2-是，默认1
    error_wavesSign : {type: Boolean, default: false}, //是否海淘商品,1-否，2-是，默认1
    old_originalStandard : String, //是否标品 0 非标品  1标品  -1未设置
    new_originalStandard : String, //是否标品 0 非标品  1标品  -1未设置
    error_originalStandard : {type: Boolean, default: false}, //是否标品 0 非标品  1标品  -1未设置

    <!--  宝宝树66小区五次改造 拼团新列追加 mod   guo.xiaomin  20171129  start   -->
    old_largeId: Number, // 大分类
    new_largeId: Number, // 大分类
    error_largeId: {type: Boolean, default: false}, // 大分类
    old_mediumId: Number, // 中分类
    new_mediumId: Number, // 中分类
    error_mediumId: {type: Boolean, default: false}, // 中分类
    old_smallId: Number, // 小分类
    new_smallId: Number, // 小分类
    error_smallId: {type: Boolean, default: false}, // 小分类
    <!--  宝宝树66小区五次改造 拼团新列追加 mod   guo.xiaomin  20171129  end   -->

    old_orderType : String, //订单类型（1：普通  2：海淘 5：拼团）
    new_orderType : String, //订单类型（1：普通  2：海淘 5：拼团）
    error_orderType : {type: Boolean, default: false}, //订单类型（1：普通  2：海淘 5：拼团）
    old_isNewGroupOrder : String, //是否是新版本拼团订单 0-否;1-是
    new_isNewGroupOrder : String, //是否是新版本拼团订单 0-否;1-是
    error_isNewGroupOrder : {type: Boolean, default: false}, //是否是新版本拼团订单 0-否;1-是
    //isNewGroupOrder="1"时  才有以下字段
    old_newGroupOrderStatus : String, // 新版本拼团状态 0-已成团;1-未成团;2-待成团;3-已抢光
    new_newGroupOrderStatus : String, // 新版本拼团状态 0-已成团;1-未成团;2-待成团;3-已抢光
    error_newGroupOrderStatus : {type: Boolean, default: false}, // 新版本拼团状态 0-已成团;1-未成团;2-待成团;3-已抢光
    old_promotionId : Number, // 拼团活动id
    new_promotionId : Number, // 拼团活动id
    error_promotionId : {type: Boolean, default: false}, // 拼团活动id
    old_proBizCode : String, // 拼团实例code
    new_proBizCode : String, // 拼团实例code
    error_proBizCode : {type: Boolean, default: false}, // 拼团实例code
    old_status: Number, //订单状态（已取消-0,新建-1,待支付-2,拣货中-3,待发货-4,待收货-5,已收货-6,申请取消-8,取消中（等第三方确认）-9,退款完成-100）
    new_status: Number, //订单状态（已取消-0,新建-1,待支付-2,拣货中-3,待发货-4,待收货-5,已收货-6,申请取消-8,取消中（等第三方确认）-9,退款完成-100）
    error_status: {type: Boolean, default: false}, //订单状态（已取消-0,新建-1,待支付-2,拣货中-3,待发货-4,待收货-5,已收货-6,申请取消-8,取消中（等第三方确认）-9,退款完成-100）
    old_doneTime: {type: Date}, // 完成时间(收货时间)
    new_doneTime: {type: Date}, // 完成时间(收货时间)
    error_doneTime: {type: Boolean, default: false}, // 完成时间(收货时间)
    old_refundStatus: Number, //退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    new_refundStatus: Number, //退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    error_refundStatus: {type: Boolean, default: false}, //退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    old_refundTime: {type: Date}, //退款时间
    new_refundTime: {type: Date}, //退款时间
    error_refundTime: {type: Boolean, default: false}, //退款时间
    old_modifyTime: {type: Date}, //退款时间
    new_modifyTime: {type: Date}, //退款时间
    error_modifyTime: {type: Boolean, default: false}, // 订单状态变更时间
    version: Number, // 版本号，同一批次唯一(日期+001)
    autoFlag: {type: Boolean, default: true}, // true:自动，false:手动
    isValid: {type: Boolean, default: true},
    dateCreated: {type: Date, default: Date.now}
});
mongoose.model('mtOrderCheckLog', mtOrderCheckLogSchema, 'mt_order_check_log');

// 精算日志
var mtOrderActuaryLogSchema = new Schema ({
    order_id : String, // 订单id
    order_time : {type: Date, default: Date.now}, // 下单时间
    isError : {type: Boolean, default: false},    // 是否出错
    comment : String, // 说明
    version: Number, // 版本号，同一批次唯一(日期+001)
    autoFlag: {type: Boolean, default: true}, // true:自动，false:手动
    actuaryFlag: String, // 粗算，精算
    isValid: {type: Boolean, default: true},
    dateCreated: {type: Date, default: Date.now}
});
mongoose.model('mtOrderActuaryLog', mtOrderActuaryLogSchema, 'mt_order_actuary_log');

var refundStatusFor66Schema = new Schema ({
    code : String, // 订单编号
    refundNo : String, //退款单编号
    createTime : {type: Date, default: Date.now}, // 退款单创建时间
    refundStatus : Number, // 退款状态1-等待打款 2-退款中 3-退款成功 4-退款失败 5-取消退款 6-更换账号退款中 7-更换账号退款成功 8-等待提交
    refundTime : {type: Date, default: Date.now}, // 退款时间
    refundType : Number, // 退款类型 1-取消订单 2-退货 3-重复支付 4-重复支付-手动生成
    refundAmount : Number, // 退款金额
    //退货信息start, 只有refundType=2时才有退货信息,否则为null
    rejectNo : String, // 退货单No
    rejectSku : String, // 退货sku
    refundQuantity : Number, // 退货数量
    itemQuantity : Number, // 商品购买数量
    refundAmountSku : Number, // 退款金额 同主记录refundAmount
    //退货信息end
    isValid: {type: Boolean, default: true},
    dateCreated: {type: Date},
    dateLastModified: {type: Date}
});
mongoose.model('refundStatusFor66', refundStatusFor66Schema, 'refund_status_for66');

// 结算表
var mtOrderBalanceSchema = new Schema({
    balanceAmbassadorUser: {type: Schema.Types.ObjectId, ref: 'user'}, // 大使用户id
    actuarialCommission: Number, // 精算金额
    estimateCommission: Number, // 粗算金额
    balanceCommission: Number, // 结算金额
    remainingSum: Number, // 结算余额
    balanceVersion: Number, // 结算版本
    balanceCount: Number,  // 结算次数
    balance_time: {type: Date, default: Date.now}, // 结算时间
    isValid: {type: Boolean, default: true},
    dateLastModified: {type: Date}  // 更新时间
});
mongoose.model('mtOrderBalance', mtOrderBalanceSchema,'mt_order_balance');